#pragma once

#include "Misc/CommonMacros.h"
#include "Path/Path.h"
#include "Render/Texture/TextureFormat.h"

namespace WH
{
    bool ReadPNG(const SPath& InFilePath, TVector<uint8_t>& OutData,ETextureFormat & OutFormat,uint64_t& OutWidth, uint64_t& OutHeight, uint64_t& OutPitch);
    bool ReadPNGFromFileData(const TVector<uint8_t>& InPNGFileData, TVector<uint8_t>& OutData, ETextureFormat& OutFormat, uint64_t& OutWidth, uint64_t& OutHeight, uint64_t& OutPitch);

    bool WritePNG(const SPath& InFilePath, const TVector<uint8_t>& InData, ETextureFormat InFormat, uint64_t InWidth, uint64_t InHeight, uint64_t InPitch);
    bool WritePNGToFileData(const TVector<uint8_t>& InTextureRawData, ETextureFormat InFormat, uint64_t InWidth, uint64_t InHeight, uint64_t InPitch, TVector<uint8_t>& OutPNGFileData);
};